package main

import (
	"fmt"
	"os"
	"reflect"
	"unicode"

	"yt/tools"
)

func main() {
	if len(os.Args) <= 1 {
		tools.Command{}.Help()
		return
	}

	command_s := os.Args[1]

	c := tools.Command{}
	getType := reflect.TypeOf(c)
	met, b := getType.MethodByName(CapitalizeFirstLetter(command_s))
	if !b {
		fmt.Println("当前命令不存在！请用help命令查看帮助信息！")
		return
	}
	met.Func.Call([]reflect.Value{reflect.ValueOf(c)})
}

// 将字符串首字母转大写
func CapitalizeFirstLetter(s string) string {
	if len(s) == 0 {
		return s
	}

	// 将字符串转换为 rune 切片
	runes := []rune(s)

	// 将第一个字符转大写
	runes[0] = unicode.ToUpper(runes[0])

	// 返回转换后的字符串
	return string(runes)
}
